#include <vector>


struct Complex
{
	//real
	double r;

	//imaginary
	double i;
};

/*
Copy Complex array into receiving destination vector
*/
void copy_complex(Complex* complex, unsigned int length, std::vector<Complex>& destination);

/*
Copy from Complex origin vector to receiving destination vector
*/
void copy_complex(std::vector<Complex>& origin, std::vector<Complex>& destination);

/*
Transform short src array to Complex array, stored in dest. 
*/
void short_to_complex(short* src, Complex* dest, unsigned int length);

/*
Transform Complex src array to short array, stored in dest. 
*/
void complex_to_short(Complex* src, short* dest, unsigned int length);

/*
Multiplies two complex arrays, and puts the results in the first array
*/
void fft_convolution(Complex* complex1, Complex* complex2, unsigned int length);
